package com.zjsru.plan2023.oneday.oneDay202301;

/**
 * @Author: CookLee
 * @Date: 2023/1/6
 * 统计各位数字之和为偶数的整数个数
 *
 * 输入：num = 30
 * 输出：14
 * 解释：
 * 只有 14 个整数满足小于等于 30 且各位数字之和为偶数，分别是：
 * 2、4、6、8、11、13、15、17、19、20、22、24、26 和 28 。
 *
 */
public class CountEven {
    
    private static final Integer NUMBER_TWO = 2;
    
    public int countEven(int num) {
        int cnt = 0;
        for (int i = 1; i <= num; i++) {
            int newNum = this.convert2Num(i);
            boolean b = this.helper(newNum);
            if (b) {
                cnt++;
            }
        }
        return cnt;
    }
    
    /**
     * 将当前数字转化为数字和
     */
    private int convert2Num(int i) {
        int num = 0, ans = 0;
        while (i > 0) {
            num = i % 10;
            i = i / 10;
            ans += num;
        }
        return ans;
    }
    
    /**
     * 判断是否是偶数
     */
    private boolean helper(int num) {
        if (num % NUMBER_TWO == 0) {
            return true;
        } else {
            return false;
        }
    }
    
    public static void main(String[] args) {
        CountEven countEven = new CountEven();
        int num = 30;
        System.out.println(countEven.countEven(num));
    }
}
